package org.example.pinda.auth.client.util;

import lombok.AllArgsConstructor;
import org.example.pinda.auth.client.properties.AuthClientProperties;
import org.example.pinda.auth.util.JwtHelper;
import org.example.pinda.auth.util.JwtUserInfo;
import org.example.pinda.exception.BizException;

/**
 * JwtToken 客户端工具
 */
@AllArgsConstructor
public class JwtTokenClientUtils {
    /**
     * 用于 认证服务的 客户端使用（如 网关），在网关获取到token后，
     * 调用此工具类进行token解析。
     * 客户端一般只需要解析token即可
     */
    private AuthClientProperties authClientProperties;

    /**
     * 解析token
     */
    public JwtUserInfo getUserInfo(String token) throws BizException {
        AuthClientProperties.TokenInfo userTokenInfo = authClientProperties.getUser();
        return JwtHelper.getJwtFromToken(token, userTokenInfo.getPubKey());
    }
}
